IMPUUO page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
IMPUUO page# 0002 next prev
68: SUBTTL IMP UUO-LEVEL CODE - JAM, SEPT '71
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
IMPUUO page# 0003 next prev
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
IMPUUO page# 0004 next prev
141:
142:
143: STLOC←←1
144: LSLOC←←2
145: WFLOC←←3
146: BSLOC←←4
147: FSLOC←←5
148: HLOC←←6
149:
150:
151:
152:
153: SIU←←1
154: CCS←←2
155: SYS←←3
156: NLA←←4
157: ILB←←5
158: IDD←←6
IMPUUO page# 0005 next prev
160:
161:
162: JRST IMPCLR
163: JRST IMPSET
164: JRST IMPINI
165: JRST CPOPJ
166: ↑IMPDSP:
167: JRST IMPRLS
168: JRST CLSO
169: JRST BUFO
170: JRST BUFI
171: JRST CPOPJ1
172: JRST CPOPJ1
173: JRST DMPO
174: JRST DMPI
175: JRST CPOPJ
176: JRST CPOPJ
177: JRST CPOPJ
178: JRST CPOPJ1
179: JRST CLSI
180: JRST CPOPJ
181: JRST MTAPE
IMPUUO page# 0006 next prev
183:
184:
185: IMPINI: SETZM IMPST
186: MOVE AC1,[XWD IMPST,IMPST+1]
187: BLT AC1,IMPEND-1
188: MOVEI AC1,MAXNLK
189: MOVEM AC1,LNKMAX
190: MOVE AC1,[P1PID]
191: MOVEM AC1,IMPPID
192: MOVEI AC1,IBEGIN
193: MOVEM AC1,IMPIDSP
194: HRLOI AC1,377777
195: MOVEM AC1,IMPOCT
196: MOVEI AC1,DONOP
197: MOVEM AC1,IMPODSP
198: MOVEI AC1,10
199: MOVEM AC1,POLCNT
200: MOVEI AC1,10
201: MOVEM AC1,IMPSPN
202: MOVE AC1,[XWD -INTPLN,IMPIPL-1]
203: MOVEM AC1,IMPIPD
204: MOVE AC1,[XWD -INTPLN,IMPOPL-1]
205: MOVEM AC1,IMPOPD
206: MOVEI AC1,LPTDDB
207: HRLM AC1,DEVSER+DDBMDL
208: SKIPN IMPDIE
209: JRST IMPGAH
210: SETOM IMPDEAD
211: MOVEI AC1,LPTDDB
212: HRLM AC1,PTPDDB+DEVSER
213: POPJ P,
214:
215: IMPGAH: PUSHJ P,IMPGET
216: HALT NOCORE
217: MOVEM AC1,IMPSPARE
218: CONO IMP,ODPIEN
219: CONO IMP,STRIN!CLRWT!IDPIEN!IEPIEN!IMPCHN
220: PUSHJ P,SNDNOP
221: PUSHJ P,IMPGET
222: HALT NOCORE
223: PUSHJ P,CLRBLK
224: MOVEI AC2,377
225: DPB AC2,SRCP
226: MOVEI AC2,10
227: DPB AC2,SIZEP
228: MOVEI AC2,1
229: DPB AC2,COUNTP
230: MOVSI AC2,(<BYTE (8)RST>)
231: MOVEM AC2,TDATA+2(AC1)
232: MOVEI AC2,3
233: MOVEM AC2,TWC(AC1)
234: MOVEI AC2,377
235: MOVEM AC2,RSTHST
236: JRST CLKOUT
IMPUUO page# 0007 next prev
238:
239:
240: MTAPE: XCTR XR,[HRRZ TAC,(UUO)]
241: CAIL TAC,MXUUO
242: JRST UUOERR
243: MOVE TAC1,UUODSP(TAC)
244: SKIPE IMPDEAD
245: JRST MTAPE2
246: JUMPG TAC1,(TAC1)
247: JRST UUOERR
248:
249: MTAPE2: JUMPL TAC1,(TAC1)
250: TLNE TAC1,200000
251: JRST IDERR
252: POPJ P,
253:
254:
255: UUODSP: 200000,,CONECT
256: 200000,,LISTEN
257: 200000,,STATUS
258: 200000,,TERMIN
259: SWAIT
260: DUMP
261: WAKE
262: GSOCKS
263: INPSKP
264: 200000,,SNDINT
265: 400000,,NEWINI
266: CPOPJ
267: TSINT
268: USETAL
269: UGETAL
270: USETTM
271: UGETTM
272: MXUUO←←.-UUODSP
IMPUUO page# 0008 next prev
274:
275:
276: TERMIN: XCTR XR,[MOVE AC2,LSLOC(UUO)]
277: XCTR XW,[SETZM STLOC(UUO)]
278: PUSHJ P,GETIDX
279: POPJ P,
280: MOVEI AC1,(DDB)
281: SKIPE IMPDDB-1(AC3)
282: CAMN AC1,IMPDDB-1(AC3)
283: JRST TEROK
284: PUSHJ P,TTYERR
285: PUSHJ P,INLMES
286: ASCIZ /CAN'T TERMINATE SOMEONE ELSE'S SOCKET!
287: /
288: TTYSTG: MOVSI IOS,USRB
289: ORB IOS,DEVIOS(DDB)
290: JRST TTYSTR
291:
292: TEROK: TRNE AC2,1
293: JRST TERS
294: PUSHJ P,URCLS
295: TERW: XCTR XR,[SKIPE WFLOC(UUO)]
296: PUSHJ P,TCLSW
297: XCTR XR,[MOVE AC2,LSLOC(UUO)]
298: PUSHJ P,GETIDX
299: POPJ P,
300: MOVE AC1,IMPSTB-1(AC3)
301: XCTR XW,[MOVEM AC1,STLOC(UUO)]
302: POPJ P,
303:
304: TERS: PUSHJ P,USCLS
305: JRST TERW
IMPUUO page# 0009 next prev
307:
308:
309: NEWINI: SKIPN AC3,FFLNK
310: JRST NEWIN1
311: NEWIN2: SKIPN AC2,IMPDDB-1(AC3)
312: JRST NEWIN3
313: CAIE AC2,(DDB)
314: JRST NEWLOS
315: NEWIN3: SOJGE AC3,NEWIN2
316: NEWIN1: PUSHJ P,DISDATE
317: PUSHJ P,DISJOB
318: PUSHJ P,DISTAB
319: MOVE TAC1,PRJPRG(J)
320: PUSHJ P,DISSIX
321: PUSHJ P,DISMES
322: ASCIZ / IS ATTEMPTING TO RESSURECT THE IMP.
323: /
324: SETZM IMPDIE
325: JRST IMPINI
326:
327: NEWLOS: PUSHJ P,TTYERR
328: PUSHJ P,INLMES
329: ASCIZ /LINKS STILL ACTIVE
330: /
331: JRST TTYSTG
IMPUUO page# 0010 next prev
IMPUUO page# 0011 next prev
334:
335:
336:
337: TSINT: ANDI DDB,-1
338: XCTR XW,[SETZM 1(UUO)]
339: XCTR XW,[SETZM 2(UUO)]
340: SKIPN AC3,FFLNK
341: POPJ P,
342: TSINLP: CAMN DDB,IMPDDB-1(AC3)
343: JRST TSINDF
344: TSINCR: SOJG AC3,TSINLP
345: POPJ P,
346:
347: TSINDF: MOVE AC2,IMPLS-1(AC3)
348: MOVE AC1,IMPSTB-1(AC3)
349: TLZE AC1,INTINS
350: XCTR XW,[SETOM 1(UUO)]
351: TLZE AC1,INTINR
352: XCTR XW,[SETOM 2(UUO)]
353: MOVEM AC1,IMPSTB-1(AC3)
354: JRST TSINCR
355:
356:
357:
358:
359:
360: USETTM: XCTR XR,[MOVE AC1,1(UUO)]
361: MOVEM AC1,TIMES(DDB)
362: POPJ P,
363:
364:
365:
366: UGETTM: MOVE AC1,TIMES(DDB)
367: XCTR XW,[MOVEM AC1,1(UUO)]
368: POPJ P,
IMPUUO page# 0012 next prev
370:
371:
372: LISTEN: XCTR XR,[MOVE AC2,LSLOC(UUO)]
373: PUSHJ P,NSCHECK
374: XCTR XR,[MOVE AC2,LSLOC(UUO)]
375: PUSHJ P,GETIDX
376: JRST LISTN2
377: JRST LISTNG
378:
379: LISTN2: AOS AC3,FFLNK
380: CAILE AC3,MAXNLK
381: JRST LISNLK
382: LISTN4: SETZ DAT,
383: SETO TEM,
384: PUSHJ P,CLRSKT
385: CHKWAT: MOVSI AC2,RFCR
386: TDNN AC2,IMPSTB-1(AC3)
387: JRST WAIT
388: MOVSI AC2,RFCS
389: TDNN AC2,IMPSTB-1(AC3)
390: PUSHJ P,SNDRFC
391: JRST SETST
392:
393: WAIT: XCTR XR,[SKIPN WFLOC(UUO)]
394: JRST SETST
395: MOVNI TAC,IOWQ
396: MOVEM TAC,JOBQUE(J)
397: MOVSI IOS,RFCW
398: ORM IOS,DEVIOS(DDB)
399: LDB TEM,RFCTP
400: PUSHJ P,TW
401: JFCL
402: SETST: XCTR XR,[MOVE AC2,LSLOC(UUO)]
403: PUSHJ P,GETIDX
404: JRST NOCONN
405: MOVE TAC,IMPFS-1(AC3)
406: XCTR XW,[MOVEM TAC,FSLOC(UUO)]
407: MOVE AC2,IMPBS-1(AC3)
408: XCTR XW,[MOVEM AC3,BSLOC(UUO)]
409: MOVE AC2,LNKTAB-1(AC3)
410: LSH AC2,-10
411: XCTR XW,[MOVEM AC2,HLOC(UUO)]
412: STST: MOVE AC2,IMPSTB-1(AC3)
413: TLZ AC2,ANYC
414: MOVEM AC2,IMPSTB-1(AC3)
415: XCTR XW,[MOVEM AC2,STLOC(UUO)]
416: POPJ P,
IMPUUO page# 0013 next prev
418:
419:
420: LISTNG: MOVE AC1,IMPSTB-1(AC3)
421: SKIPN TAC,IMPDDB-1(AC3)
422: JRST LNODDB
423: SIUERR: MOVEI TAC,SIU
424: JRST DEPERC
425:
426: LNODDB: TLNE AC1,CLSS
427: JRST WCLS
428: TLNN AC1,RFCR
429: JRST LISTN4
430: TLNN AC1,RFCS
431: JRST USRTSR
432: ILLST: TELCTR(NILLST,<ILLEGAL STATE: STR AND RTS BUT NO DDB!>)
433: SYSERR: MOVEI TAC,SYS
434: DEPERC: XCTR XW,[MOVEM TAC,STLOC(UUO)]
435: POPJ P,
436:
437: WCLS: HRRZM DDB,IMPDDB-1(AC3)
438: TLNN AC1,CLSR
439: PUSHJ P,TCLSW
440: XCTR XR,[MOVE AC2,LSLOC(UUO)]
441: TLZ AC1,CLSS!CLSR!RFCR!RFCS
442: MOVEM AC1,IMPSTB-1(AC3)
443: MOVEM AC2,IMPLS-1(AC3)
444: TRNN AC2,1
445: JRST LNOBS
446: ANDI AC1,77
447: CAIG AC1,44
448: SKIPGE BPW(AC1)
449: JRST UILLBS
450: XCTR XR,[MOVE AC1,BSLOC(UUO)]
451: MOVEM AC1,IMPBS-1(AC3)
452: LNOBS: SETZM LNKTAB-1(AC3)
453: SETOM IMPFS-1(AC3)
454: SKIPE AC1,IMPRFQ-1(AC3)
455: PUSHJ P,DISPQ
456: JRST CHKWAT
457: JRST SETST
458:
459: UILLBS: MOVEI TAC,ILB
460: JRST DEPERC
461:
462: IDERR: MOVEI TAC,IDD
463: JRST DEPERC
IMPUUO page# 0014 next prev
465:
466:
467: USRTSR: HRRZM DDB,IMPDDB-1(AC3)
468: SNDRAL: XCTR XR,[MOVE AC2,LSLOC(UUO)]
469: XCTR XR,[MOVE TEM,BSLOC(UUO)]
470: TRNE AC2,1
471: MOVEM TEM,IMPBS-1(AC3)
472: PUSHJ P,SNDRFC
473: JRST SETST
474:
475:
476:
477: LISNLK: SOS FFLNK
478: MOVEI TAC,NLA
479: XCTR XW,[MOVEM TAC,STLOC(UUO)]
480: POPJ P,
IMPUUO page# 0015 next prev
482:
483:
484: CONECT: SKIPE IMPDEAD
485: JRST IDERR
486: XCTR XR,[MOVE AC2,LSLOC(UUO)]
487: PUSHJ P,NSCHECK
488: XCTR XR,[MOVE AC2,LSLOC(UUO)]
489: PUSHJ P,GETIDX
490: JRST MAKRFC
491: MOVE AC1,IMPSTB-1(AC3)
492: SKIPE TAC,IMPDDB-1(AC3)
493: JRST SIUERR
494: TLNE AC1,RFCR
495: TLNE AC1,RFCS
496: JRST CHKCL
497: XCTR XR,[MOVE TEM,FSLOC(UUO)]
498: CAME TEM,IMPFS-1(AC3)
499: JRST SIUERR
500: XCTR XR,[MOVE TEM,HLOC(UUO)]
501: LSH TEM,10
502: XOR TEM,LNKTAB-1(AC3)
503: TRNE TEM,177400
504: JRST SIUERR
505: HRRZM DDB,IMPDDB-1(AC3)
506: JRST SNDRAL
IMPUUO page# 0016 next prev
508:
509:
510: CHKCL: TLNN AC1,CLSS
511: JRST ILLST
512: HRRZM DDB,IMPDDB-1(AC3)
513: TLNN AC1,CLSR
514: PUSHJ P,TCLSW
515: XCTR XR,[MOVE AC2,LSLOC(UUO)]
516: CONSRL: TLZ AC1,CLSS!CLSR!RFCR!RFCS
517: MOVEM AC1,IMPSTB-1(AC3)
518: MOVEM AC2,IMPLS-1(AC3)
519: XCTR XR,[MOVE TEM,FSLOC(UUO)]
520: MOVEM TEM,IMPFS-1(AC3)
521: XCTR XR,[MOVE AC1,HLOC(UUO)]
522: ANDI AC1,377
523: LSH AC1,10
524: MOVEM AC1,LNKTAB-1(AC3)
525: TRNN AC2,1
526: JRST CNOBS
527: XCTR XR,[MOVE AC1,BSLOC(UUO)]
528: ANDI AC1,77
529: CAIG AC1,44
530: SKIPGE BPW(AC1)
531: JRST UILLBS
532: MOVEM AC1,IMPBS-1(AC3)
533: CNOBS: SKIPE AC1,IMPRFQ-1(AC3)
534: PUSHJ P,DISPQ
535: JRST MSSRFC
536: JRST CONWAT
537:
538: MSSRFC: PUSHJ P,SNDRFC
539: MOVE IOS,DEVIOS(DDB)
540: TRNE IOS,IODERR!IODTER!HDEAD!RSET
541: POPJ P,
542: JRST CONWAT
IMPUUO page# 0017 next prev
544:
545:
546: CONWAT: XCTR XR,[MOVE AC2,LSLOC(UUO)]
547: PUSHJ P,GETIDX
548: JRST NOCONN
549: JRST CHKWAT
550:
551: NOCONR: TELCTR(NNOCLW,<NO RETURN CLS SENT!>)
552: JRST CONSRL
553:
554:
555:
556: MAKRFC: XCTR XR,[MOVE TEM,FSLOC(UUO)]
557: AOS AC3,FFLNK
558: CAILE AC3,MAXNLK
559: JRST LISNLK
560: XCTR XR,[MOVE DAT,HLOC(UUO)]
561: ANDI DAT,377
562: LSH DAT,10
563: PUSHJ P,CLRSKT
564: JRST MSSRFC
IMPUUO page# 0018 next prev
566:
567:
568: DUMP: XCTR XR,[MOVE AC2,2(UUO)]
569: MOVEI TAC1,(AC2)
570: XCTR XRW,[MOVSS (AC2)]
571: MOVEI AC3,(AC2)
572: XCTR XR,[ADD AC3,1(UUO)]
573: XCTR XRW,[MOVSS -1(AC3)]
574: XOR AC3,TAC1
575: JUMPL AC3,ADRERR
576: PUSHJ P,DOLOC
577: HRLI DSER,SYSTBS
578: HRRZI AC3,-1(DSER)
579: XCTR XR,[ADD AC3,1(UUO)]
580: BLT DSER,(AC3)
581: POPJ P,
582:
583:
584:
585: STATUS: PUSHJ P,UUSIDX
586: JRST STAT1
587: MOVSI AC2,ANYC
588: ANDCAB AC2,IMPSTB-1(AC3)
589: XCTR XW,[MOVEM AC2,1(UUO)]
590: JRST STAT2
591:
592: STAT1: XCTR XW,[SETZM 1(UUO)]
593: STAT2: PUSHJ P,UURIDX
594: JRST STAT3
595: MOVSI AC2,ANYC
596: ANDCAB AC2,IMPSTB-1(AC3)
597: XCTR XW,[MOVEM AC2,2(UUO)]
598: POPJ P,
599:
600: STAT3: XCTR XW,[SETZM 2(UUO)]
601: POPJ P,
602:
603:
604:
605: WAKE: SKIPN INTACT
606: POPJ P,
607: MOVE IOS,DEVIOS(DDB)
608: TLNN IOS,ANYW
609: POPJ P,
610: TRO IOS,TMO
611: MOVEM IOS,DEVIOS(DDB)
612: JRST QRUN
IMPUUO page# 0019 next prev
614:
615:
616: GSOCKS: PUSHJ P,UUSIDX
617: JRST GSOCKA
618: PUSHJ P,DMPTBS
619: GSOCKB: ADDI UUO,3
620: PUSHJ P,UURIDX
621: JRST ZTAB
622: JRST DMPTBS
623:
624: GSOCKA: PUSHJ P,ZTAB
625: JRST GSOCKB
626:
627: ZTAB: XCTR XW,[SETZM 1(UUO)]
628: XCTR XW,[SETZM 2(UUO)]
629: XCTR XW,[SETZM 3(UUO)]
630: POPJ P,
631:
632: DMPTBS: MOVE AC1,LNKTAB-1(AC3)
633: XCTR XW,[MOVEM AC1,1(UUO)]
634: MOVE AC1,IMPLS-1(AC3)
635: XCTR XW,[MOVEM AC1,2(UUO)]
636: MOVE AC1,IMPFS-1(AC3)
637: XCTR XW,[MOVEM AC1,3(UUO)]
638: POPJ P,
IMPUUO page# 0020 next prev
640:
641:
642: SWAIT: XCTR XR,[MOVE AC2,LSLOC(UUO)]
643: PUSHJ P,GETIDX
644: JRST NOCONN
645: MOVE AC1,IMPSTB-1(AC3)
646: TLC AC1,RFCS!RFCR
647: TLCE AC1,RFCS!RFCR
648: TLNE AC1,CLSR!CLSS
649: JRST SWSTST
650: MOVNI AC1,IOWQ
651: MOVEM AC1,JOBQUE(J)
652: MOVSI IOS,RFCW
653: ORM IOS,DEVIOS(DDB)
654: LDB TEM,RFCTP
655: PUSHJ P,TW
656: JRST NSW
657: MOVSI IOS,RFCW
658: ANDCAB IOS,DEVIOS(DDB)
659: JRST SWAIT
660:
661: NSW: MOVSI IOS,RFCW
662: ANDCAB IOS,DEVIOS(DDB)
663: POPJ P,
664:
665: SWSTST: XCTR XW,[MOVEM AC1,STLOC(UUO)]
666: POPJ P,
667:
668:
669:
670: INPSKP: SKIPE INL(DDB)
671: JRST CPOPJ1
672: JRST INIALL
IMPUUO page# 0021 next prev
674:
675:
676:
677:
678:
679:
680:
681:
682:
683: USETAL: XCTR XR,[SKIPL TAC,1(UUO)]
684: CAILE TAC,3
685: JRST UUOERR
686: JRST @USETTB(TAC)
687:
688: USETTB: USETSP
689: USETMX
690: USETMN
691: USETDF
692:
693: USETMX: MOVEI AC3,MAXBAL
694: MOVEI AC2,MAXMAL
695: JRST UCHKB
696:
697: USETMN: MOVEI AC3,MINBAL
698: MOVEI AC2,MINMAL
699: JRST UCHKB
700:
701: USETDF: MOVEI AC3,DEFBAL
702: MOVEI AC2,DEFMAL
703: JRST UCHKB
704:
705: USETSP: XCTR XR,[MOVE AC3,2(UUO)]
706: XCTR XR,[MOVE AC2,3(UUO)]
707: CAIGE AC3,MINBAL
708: MOVEI AC3,MINBAL
709: CAILE AC3,MAXBAL
710: MOVEI AC3,MAXBAL
711: CAIGE AC2,MINMAL
712: MOVEI AC2,MINMAL
713: CAILE AC2,MAXMAL
714: MOVEI AC2,MAXMAL
715: JRST UCHKB
IMPUUO page# 0022 next prev
717:
718:
719:
720: UCHKB: MOVEM AC3,NHBA(DDB)
721: MOVEM AC2,NHMA(DDB)
722: LSH AC3,-1
723: LSH AC2,-1
724: MOVEM AC3,NHBA2(DDB)
725: MOVEM AC2,NHMA2(DDB)
726: PUSHJ P,UURIDX
727: POPJ P,
728: MOVE AC1,IMPSTB-1(AC3)
729: TLC AC1,RFCR!RFCS
730: TLNN AC1,CLSS!CLSR
731: TLNE AC1,RFCR!RFCS
732: POPJ P,
733: MOVE UUO,LNKTAB-1(AC3)
734: MOVE AC3,HBA(DDB)
735: MOVE AC2,HMA(DDB)
736: CAMG AC3,NHBA(DDB)
737: CAMLE AC2,NHMA(DDB)
738: JRST AFSB
739: ADD AC3,BIIL(DDB)
740: ADD AC2,MIIL(DDB)
741: CAML AC2,NHMA2(DDB)
742: CAMGE AC3,NHBA2(DDB)
743: PUSHJ P,SNDBAL
744: POPJ P,
IMPUUO page# 0023 next prev
746:
747:
748: AFSB: SUB AC3,NHBA(DDB)
749: SKIPGE AC3
750: SETZ AC3,
751: SUB AC2,NHMA(DDB)
752: SKIPGE AC2
753: SETZ AC2,
754: LSH AC2,7
755: LSH AC3,7
756: IDIV AC2,HMA(DDB)
757: IDIV AC3,HBA(DDB)
758: LSH AC2,8
759: ORI AC2,(AC3)
760: HRLI AC2,GVB⊗6
761: PUSHJ P,IMPGET
762: JRST NOCORE
763: LSH AC2,4
764: MOVEM AC2,TDATA+2(AC1)
765: SETZM TDATA(AC1)
766: SETZM TDATA+1(AC1)
767: MOVEI AC2,3
768: MOVEM AC2,TWC(AC1)
769: DPB UUO,OLINKP
770: ANDCMI UUO,177400
771: DPB UUO,ELINKP
772: MOVEI AC2,10
773: DPB AC2,SIZEP
774: MOVEI AC2,4
775: DPB AC2,COUNTP
776: JRST UUOQ
IMPUUO page# 0024 next prev
778:
779:
780: UGETAL: MOVE TAC,NHBA(DDB)
781: XCTR XW,[MOVEM TAC,1(UUO)]
782: MOVE TAC,NHMA(DDB)
783: XCTR XW,[MOVEM TAC,2(UUO)]
784: MOVE TAC,HBA(DDB)
785: XCTR XW,[MOVEM TAC,3(UUO)]
786: MOVE TAC,HMA(DDB)
787: XCTR XW,[MOVEM TAC,4(UUO)]
788: MOVE TAC,BIIL(DDB)
789: XCTR XW,[MOVEM TAC,5(UUO)]
790: MOVE TAC,MIIL(DDB)
791: XCTR XW,[MOVEM TAC,6(UUO)]
792: MOVE TAC,BAL(DDB)
793: XCTR XW,[MOVEM TAC,7(UUO)]
794: MOVE TAC,MAL(DDB)
795: XCTR XW,[MOVEM TAC,10(UUO)]
796: POPJ P,
IMPUUO page# 0025 next prev
798:
799:
800: SNDINT: XCTR XR,[MOVE AC2,LSLOC(UUO)]
801: PUSHJ P,IMPGET
802: JRST NOCORE
803: XCTR XW,[SETZM STLOC(UUO)]
804: PUSHJ P,GETIDX
805: JRST IMPREL
806: MOVE DAT,IMPSTB-1(AC3)
807: XCTR XW,[MOVEM DAT,STLOC(UUO)]
808: SETZM TDATA(AC1)
809: SETZM TDATA+1(AC1)
810: SETZM TDATA+2(AC1)
811: MOVEI DAT,10
812: DPB DAT,SIZEP
813: MOVEI DAT,2
814: DPB DAT,COUNTP
815: MOVEI DAT,3
816: MOVEM DAT,TWC(AC1)
817: MOVE DAT,LNKTAB-1(AC3)
818: ANDI DAT,177400
819: DPB DAT,ELINKP
820: MOVE DAT,LNKTAB-1(AC3)
821: DPB DAT,OLINKP
822: MOVEI DAT,INS
823: TRNN AC2,1
824: MOVEI DAT,INR
825: DPB DAT,OPCDP
826: JRST UUOQ
IMPUUO page# 0026 next prev
828:
829:
830: IMPRLS: SKIPL TIM(DDB)
831: SOS TIMWAIT
832: SETOM TIM(DDB)
833: SKIPE AC1,INL(DDB)
834: PUSHJ P,RELBLS
835: SKIPE IMPDEAD
836: JRST RLDI
837: MOVE IOS,DEVIOS(DDB)
838: TRNE IOS,BLOK
839: PUSHJ P,RFNMWT
840: PUSHJ P,UUSIDX
841: JRST IMPRL3
842: MOVE AC1,IMPSTB-1(AC3)
843: TLNE AC1,RFCS
844: TLNE AC1,CLSS
845: JRST IMPRL1
846: PUSHJ P,USCLS
847: PUSHJ P,UUSIDX
848: JRST IMPRL3
849: IMPRL1: SETZM IMPDDB-1(AC3)
850: PUSHJ P,ZEROLK
851: IMPRL3: PUSHJ P,UURIDX
852: POPJ P,
853: MOVE AC1,IMPSTB-1(AC3)
854: TLNE AC1,RFCS
855: TLNE AC1,CLSS
856: JRST IMPRL4
857: PUSHJ P,URCLS
858: PUSHJ P,UURIDX
859: POPJ P,
860: IMPRL4: SETZM IMPDDB-1(AC3)
861: JRST ZEROLK
862:
863:
864:
865: RLDI: PUSHJ P,UUSIDX
866: JRST RLDI1
867: SETZM IMPDDB-1(AC3)
868: PUSHJ P,ZEROLK
869: RLDI1: PUSHJ P,UURIDX
870: POPJ P,
871: SETZM IMPDDB-1(AC3)
872: JRST ZEROLK
IMPUUO page# 0027 next prev
874:
875:
876: BUFO: PUSHJ P,UUOOOK
877: JRST UUXIT
878: HRRZ TAC1,DEVOAD(DDB)
879: XCTR XR,[HRRZ TAC,1(TAC1)]
880: ADDI TAC1,2
881: PUSHJ P,NEWOX
882: PUSHJ P,ADVBFE
883: JRST UUXIT
884: JRST BUFO
885:
886:
887:
888: DMPO: PUSHJ P,UUOOOK
889: JRST UUXIT
890: DMPO1: PUSHJ P,DMPCMD
891: MOVNS TAC
892: PUSH P,UUO
893: PUSHJ P,NEWOX
894: POP P,UUO
895: AOJA UUO,DMPO
IMPUUO page# 0028 next prev
897:
898:
899:
900: NEWOX: JUMPE TAC,CPOPJ
901: ADD P,[XWD 1,1]
902: OUTAGN: PUSHJ P,ALLOK
903: JRST SPOPJ
904: HRLI TAC1,440000
905: MOVE IOS,IMPBS-1(AC3)
906: DPB IOS,[POINT 6,TAC1,11]
907: MOVE AC3,IOS
908: MOVE AC3,BPW(AC3)
909: IDIV AC3,IOS
910: LDB IOS,[POINT 6,TAC1,11]
911: SETOM (P)
912: CAIN IOS,8
913: JRST GOBAAT
914: MOVE TEM,BAL(DDB)
915: CAILE TEM,400
916: CAIGE TAC,10
917: JRST GOBAAT
918: JRST GOFW
919:
920: GOBAAT: IMULI TAC,(AC3)
921: SETZM (P)
922: GOFW: MOVEI TEM,(AC3)
923: NEWMSO: PUSHJ P,IMPGET
924: JRST NOCORE
925: SETZM TDATA(AC1)
926: SETZM TDATA+1(AC1)
927: PUSHJ P,UUSIDX
928: JRST NOCONN
929: MOVE IOS,LNKTAB-1(AC3)
930: DPB IOS,ELINKP
931: MOVE IOS,IMPBS-1(AC3)
932: DPB IOS,SIZEP
933: MOVE DAT,TLEN(AC1)
934: MOVEM DAT,TWC(AC1)
935: SUBI DAT,2
936: PUSH P,AC1
937: SETZB AC2,UCHN
938: SKIPGE -1(P)
939: JRST BFOHW
IMPUUO page# 0029 next prev
941:
942:
943:
944: NBLOOP: PUSH P,AC1
945: IMULI DAT,(TEM)
946: SETZM TLINK(AC1)
947: CAMN AC1,-1(P)
948: ADDI AC1,2
949: ADDI AC1,TDATA
950: HRLI AC1,440000
951: DPB IOS,[POINT 6,AC1,11]
952: NWLOOP: ADD UCHN,IOS
953: CAIG UCHN,=7900
954: CAMLE UCHN,BAL(DDB)
955: JRST OUTNOW
956: XCTR XLB,[ILDB DSER,TAC1]
957: IDPB DSER,AC1
958: ADDI AC2,1
959: CAIN IOS,8
960: SOJA TAC,NWTNLP
961: SOJLE TAC,ENDNOW
962: NWLOP1: SOJG DAT,NWLOOP
963: PUSHJ P,IMPGET
964: JRST NOCORE
965: POP P,UUO
966: HRRZM AC1,TLINK(UUO)
967: MOVE DAT,TLEN(AC1)
968: MOVEM DAT,TWC(AC1)
969: JRST NBLOOP
970:
971: NWTNLP: JUMPE TAC,ENDNOW
972: CAILE TAC,4
973: JRST NWLOP1
974: CAIN TAC,4
975: ADD TAC1,[400000,,1]
976: MOVEI AC3,1
977: LSH AC3,-1(TAC)
978: XCTR XR,[TDNN AC3,(TAC1)]
979: JRST NWLOP1
980: IBP TAC1
981: SOJA TAC,NWTNLP
982:
983: OUTNOW: SUB UCHN,IOS
984: PUSHJ P,UUFNO
985: PUSHJ P,ALLOK
986: JRST SPOPJ
987: JRST NEWMSO
988:
989: ENDNOW: SUBI DAT,1
990: PUSHJ P,UUFNO
991: SPOPJ: SUB P,[XWD 1,1]
992: POPJ P,
IMPUUO page# 0030 next prev
994:
995:
996: UUFNO: PUSH P,TEM
997: SETZ TEM,
998: UUFILL: LDB AC3,[POINT 6,AC1,5]
999: CAMGE AC3,IOS
1000: JRST UUFIN
1001: IDPB TEM,AC1
1002: JRST UUFILL
1003:
1004: UUFIN: MOVNS UCHN
1005: ADDM UCHN,BAL(DDB)
1006: SOS MAL(DDB)
1007: MOVE AC1,-2(P)
1008: MOVE TEM,(P)
1009: IDIVM DAT,TEM
1010: MOVNS TEM
1011: ADDM TEM,TWC(AC1)
1012: MOVE AC1,-3(P)
1013: DPB AC2,COUNTP
1014: PUSHJ P,UUOQ
1015: POP P,TEM
1016: SUB P,[XWD 3,3]
1017: JRST @3(P)
IMPUUO page# 0031 next prev
1019:
1020:
1021: BFOHW: MOVE TEM,IOS
1022: MOVE TEM,BPW(TEM)
1023: MOVEI AC3,(TEM)
1024: IMULI AC3,(TAC)
1025: CAML AC3,BAL(DDB)
1026: MOVE AC3,BAL(DDB)
1027: CAILE AC3,=8000
1028: MOVEI AC3,=8000
1029: MOVEI UCHN,(AC3)
1030: IDIVI AC3,(TEM)
1031: CAME AC1,(P)
1032: JRST HWNB
1033: LDB IOS,SIZEP
1034: IDIVM TEM,IOS
1035: IMULI IOS,(AC3)
1036: DPB IOS,COUNTP
1037: HWNB: SETZM TLINK(AC1)
1038: MOVEI AC2,(AC3)
1039: CAIL AC2,(DAT)
1040: MOVEI AC2,(DAT)
1041: PUSHJ P,DOLOC
1042: HRLI UCHN,(DSER)
1043: CAME AC1,(P)
1044: HRRI UCHN,TDATA(AC1)
1045: CAMN AC1,(P)
1046: HRRI UCHN,TDATA+2(AC1)
1047: MOVEI UUO,(UCHN)
1048: ADDI UUO,-1(AC2)
1049: BLT UCHN,(UUO)
1050: SUBI AC3,(AC2)
1051: ADDI TAC1,(AC2)
1052: ADDI DSER,(AC2)
1053: SUBI TAC,(AC2)
1054: CAMN AC1,(P)
1055: ADDI AC2,2
1056: MOVEM AC2,TWC(AC1)
1057: JUMPLE TAC,HWEND
1058: JUMPLE AC3,HWDOX
1059: MOVE UUO,AC1
1060: PUSHJ P,IMPGET
1061: JRST NOCORE
1062: SETZM TLINK(AC1)
1063: HRRZM AC1,TLINK(UUO)
1064: MOVE DAT,TLEN(AC1)
1065: MOVEM DAT,TWC(AC1)
1066: JRST HWNB
IMPUUO page# 0032 next prev
1068:
1069:
1070:
1071: HWDOX: POP P,AC1
1072: PUSHJ P,UPDALL
1073: PUSHJ P,UUOQ
1074: JRST OUTAGN
1075:
1076: HWEND: POP P,AC1
1077: PUSHJ P,UPDALL
1078: SUB P,[XWD 1,1]
1079: JRST UUOQ
1080:
1081:
1082:
1083: UPDALL: PUSH P,AC2
1084: PUSH P,AC3
1085: LDB AC2,SIZEP
1086: LDB AC3,COUNTP
1087: IMULI AC3,(AC2)
1088: MOVNS AC3
1089: ADDM AC3,BAL(DDB)
1090: SOS MAL(DDB)
1091: POP P,AC3
1092: POP P,AC2
1093: POPJ P,
IMPUUO page# 0033 next prev
1095:
1096:
1097: BUFI: HRRZ TAC1,DEVIAD(DDB)
1098: XCTR XR,[HLRZ TAC,(TAC1)]
1099: ANDCMI TAC,400000
1100: MOVEI DSER,(TAC1)
1101: ADDI DSER,-1(TAC)
1102: XCTR XRW,[MOVSS (DSER)]
1103: SUBI TAC,1
1104: ADDI TAC1,2
1105: PUSHJ P,INPT
1106: JRST ENDCHK
1107: HRRZ AC2,DEVIAD(DDB)
1108: XCTR XW,[MOVEM DAT,1(AC2)]
1109: PUSHJ P,ADVBFF
1110: JRST UUXIT
1111: UUXIT: MOVE IOS,DEVIOS(DDB)
1112: POPJ P,
1113:
1114: ENDCHK: TLZE IOS,IOEND
1115: ORI IOS,IODEND
1116: TRNE IOS,TMO
1117: ORI IOS,IODERR
1118: MOVEM IOS,DEVIOS(DDB)
1119: POPJ P,
1120:
1121:
1122:
1123: DMPI: PUSHJ P,DMPCMD
1124: MOVNS TAC
1125: XCTR XRW,[MOVSS (TAC1)]
1126: MOVEI DSER,(TAC1)
1127: ADDI DSER,-1(TAC)
1128: XCTR XRW,[MOVSS (DSER)]
1129: DMPIT: PUSHJ P,INPT
1130: JRST ENDCHK
1131: JUMPG TAC,DMPIT
1132: AOJA UUO,DMPI
IMPUUO page# 0034 next prev
1134:
1135:
1136:
1137:
1138:
1139: INPT: PUSHJ P,UUOIOK
1140: POPJ P,
1141: INPTM: SETZ DAT,
1142: SKIPE AC1,INL(DDB)
1143: JRST INPT1
1144: MOVE AC1,IMPSTB-1(AC3)
1145: TLNN AC1,CLSR
1146: JRST INPWT
1147: MOVSI IOS,IOEND
1148: ORB IOS,DEVIOS(DDB)
1149: POPJ P,
1150:
1151: INPWT: PUSHJ P,INIALL
1152: MOVSI IOS,INPW
1153: ORM IOS,DEVIOS(DDB)
1154: LDB TEM,INPTP
1155: PUSHJ P,TW
1156: JRST ISETEB
1157: MOVE IOS,DEVIOS(DDB)
1158: TRNN IOS,TMO!IODERR!IODTER!HDEAD!RSET
1159: PUSHJ P,UURIDX
1160: POPJ P,
1161: MOVE AC1,IMPSTB-1(AC3)
1162: TLNN AC1,CLSS!CLSR
1163: JRST INPT
1164: SKIPE INL(DDB)
1165: JRST INPTOK
1166: MOVSI IOS,INPW
1167: ORM IOS,DEVIOS(DDB)
1168: LDB TEM,INPTP
1169: CAIGE TEM,2
1170: MOVEI TEM,2
1171: PUSHJ P,TW
1172: JFCL
1173: INPTOK: PUSHJ P,UURIDX
1174: POPJ P,
1175: JRST INPTM
1176:
1177: ISETEB: MOVEI IOS,IODERR
1178: ORB IOS,DEVIOS(DDB)
1179: POPJ P,
IMPUUO page# 0035 next prev
1181:
1182:
1183: INPT1: SKIPGE AC2,TLEN(AC1)
1184: JRST INPT2
1185: LDB AC3,SIZEP
1186: LDB AC2,COUNTP
1187: IMULI AC3,(AC2)
1188: MOVNS AC3
1189: SOS AC2,MIIL(DDB)
1190: ADDB AC3,BIIL(DDB)
1191: ADD AC2,HMA(DDB)
1192: ADD AC3,HBA(DDB)
1193: CAMLE AC2,NHMA2(DDB)
1194: CAMG AC3,NHBA2(DDB)
1195: PUSHJ P,SNDBAL
1196: LDB AC3,SIZEP
1197: MOVEI AC2,44
1198: IDIVM AC2,AC3
1199: LDB AC2,COUNTP
1200: IDIVI AC2,(AC3)
1201: SKIPE AC3
1202: ADDI AC2,1
1203: MOVE AC3,TWC(AC1)
1204: SUBI AC3,2
1205: MOVEM AC3,TWC(AC1)
1206: MOVEI UCHN,(AC1)
1207: COMPTB: CAILE AC2,(AC3)
1208: JRST GTNXB
1209: MOVEM AC2,TWC(UCHN)
1210: PUSH P,AC1
1211: HRRZ AC1,TLINK(UCHN)
1212: HLLZS TLINK(UCHN)
1213: SKIPE AC1
1214: PUSHJ P,RELLST
1215: POP P,AC1
1216: MOVEI AC2,TDATA+2(AC1)
1217: JRST INPT2
1218:
1219: GTNXB: SUBI AC2,(AC3)
1220: HRRZ UCHN,TLINK(UCHN)
1221: JUMPN UCHN,GNXWC
1222: JSP TAC,UUOMES
1223: ASCIZ /MESSAGE LENGTH NOT CONSISTANT WITH BYTE SIZE, UUO/
1224:
1225: GNXWC: MOVE AC3,TWC(UCHN)
1226: JRST COMPTB
IMPUUO page# 0036 next prev
1228:
1229:
1230: INPT2: MOVE AC3,TWC(AC1)
1231: CAIL AC3,(TAC)
1232: MOVEI AC3,(TAC)
1233: PUSHJ P,DOLOC
1234: MOVEI UCHN,(DSER)
1235: HRLI DSER,(AC2)
1236: ADDI UCHN,-1(AC3)
1237: BLT DSER,(UCHN)
1238: ADDI AC2,(AC3)
1239: ADDI DAT,(AC3)
1240: SUBI TAC,(AC3)
1241: ADDI TAC1,(AC3)
1242: TLO AC2,400000
1243: MOVEM AC2,TLEN(AC1)
1244: MOVNS AC3
1245: ADDB AC3,TWC(AC1)
1246: JUMPG AC3,INPMOR
1247: HRRZ UCHN,TLINK(AC1)
1248: JUMPE UCHN,UNLST
1249: HLRZ DSER,TLINK(AC1)
1250: HRLM DSER,TLINK(UCHN)
1251: HRRM UCHN,INL(DDB)
1252: HLRZ DSER,INL(DDB)
1253: CAIN DSER,(AC1)
1254: HRLM UCHN,INL(DDB)
1255: PUSHJ P,IMPREL
1256: MOVE AC1,UCHN
1257: TLO UCHN,400000
1258: ADDI UCHN,TDATA
1259: MOVEM UCHN,TLEN(AC1)
1260: INPMOR: JUMPG TAC,INPT1
1261: JRST CPOPJ1
1262:
1263: UNLST: HLRZ UCHN,TLINK(AC1)
1264: HRRM UCHN,INL(DDB)
1265: SKIPN UCHN
1266: SETZM INL(DDB)
1267: PUSHJ P,IMPREL
1268: SKIPE AC1,UCHN
1269: JRST INPMOR
1270: SETZM INL(DDB)
1271: JRST CPOPJ1
IMPUUO page# 0037 next prev
1273:
1274:
1275: CLSO: SKIPE IMPDEAD
1276: POPJ P,
1277: TLNN DDB,OUTBFB!OUTPB
1278: JRST CLSO1
1279: LDB AC1,PIOMOD
1280: CAIGE AC1,DR
1281: PUSHJ P,OUT
1282: CLSO1: PUSHJ P,UUSIDX
1283: POPJ P,
1284: MOVE IOS,DEVIOS(DDB)
1285: TRNE IOS,BLOK
1286: PUSHJ P,RFNMWT
1287: PUSHJ P,UUSIDX
1288: POPJ P,
1289: MOVSI AC2,CLSS
1290: TDNE AC2,IMPSTB-1(AC3)
1291: POPJ P,
1292: JRST USCLS
1293:
1294:
1295:
1296: CLSI: SKIPN IMPDEAD
1297: PUSHJ P,UURIDX
1298: POPJ P,
1299: MOVE IOS,DEVIOS(DDB)
1300: TRNE IOS,BLOK
1301: PUSHJ P,RFNMWT
1302: PUSHJ P,UURIDX
1303: POPJ P,
1304: MOVSI AC2,CLSS
1305: TDNE AC2,IMPSTB-1(AC3)
1306: POPJ P,
1307: JRST URCLS
IMPUUO page# 0038 next prev
1309:
1310:
1311:
1312:
1313:
1314:
1315: SNDRFC: HRRZM DDB,IMPDDB-1(AC3)
1316: PUSHJ P,IMPGET
1317: PUSHJ P,CLKWAIT
1318: XCTR XR,[MOVE AC2,LSLOC(UUO)]
1319: MOVEI TEM,RTS
1320: TRNE AC2,1
1321: MOVEI TEM,STR
1322: PUSHJ P,GETIDX
1323: JRST NOCONN
1324: PUSHJ P,MAKRF
1325: JRST UUOQ
IMPUUO page# 0039 next prev
1327:
1328:
1329:
1330: MAKRF: MOVSI AC2,RFCS
1331: PUSHJ P,CSTAT
1332: PUSHJ P,CLRBLK
1333: MOVE AC2,LNKTAB-1(AC3)
1334: ANDCMI AC2,377
1335: DPB AC2,ELINKP
1336: MOVEI AC2,10
1337: DPB AC2,SIZEP
1338: MOVEI AC2,12
1339: DPB AC2,COUNTP
1340: DPB TEM,OPCDP
1341: MOVE AC2,IMPLS-1(AC3)
1342: PUSHJ P,PSOCK1
1343: MOVE AC2,IMPFS-1(AC3)
1344: PUSHJ P,PSOCK2
1345: MOVEI AC2,5
1346: MOVEM AC2,TWC(AC1)
1347: CAIE TEM,RTS
1348: JRST SNDBS
1349: PUSHJ P,GNLNK
1350: DPB AC2,[POINT 8,LNKTAB-1(AC3),35]
1351: DPB AC2,SZLKP
1352: POPJ P,
1353:
1354: SNDBS: MOVE AC2,IMPBS-1(AC3)
1355: DPB AC2,SZLKP
1356: POPJ P,
IMPUUO page# 0040 next prev
1358:
1359:
1360: NOCONN: JSP TAC,UUOMES
1361: ASCIZ /IMP IO WITHOUT REQUEST FOR CONNECTION
1362: UUO/
1363:
1364:
1365:
1366: NOCORE: TELCTR(NNCOR,<NO CORE AT UUO LEVEL>)
1367: JRST UUOERR
IMPUUO page# 0041 next prev
1369:
1370:
1371:
1372:
1373: UUOQ: SKIPN IMPDEAD
1374: JRST UUODQ
1375: UUODD: MOVEI IOS,HDEAD!IODERR
1376: ORB IOS,DEVIOS(DDB)
1377: JRST RELLST
1378:
1379: UUODQ: PUSH P,TAC
1380: PUSH P,TEM
1381: LDB TAC,LINKP
1382: JUMPE TAC,UUOQ0
1383: MOVE IOS,DEVIOS(DDB)
1384: TRNN IOS,BLOK
1385: JRST UUOQNW
1386: PUSHJ P,RFNMWT
1387: TRNE IOS,IODERR!IODTER!HDEAD!RSET
1388: JRST UUOQRL
1389: UUOQNW: ORI IOS,BLOK
1390: MOVEM IOS,DEVIOS(DDB)
1391: JRST UUOQO
1392:
1393: UUOQ0: PUSHJ P,L0PTR
1394: TDNN AC3,L0BLOK(AC2)
1395: JRST UUOQ0N
1396: MOVSI IOS,LNK0W
1397: ORM IOS,DEVIOS(DDB)
1398: AOS L0WAIT
1399: LDB TEM,RFNMTP
1400: PUSHJ P,TW
1401: JRST UUOQR1
1402: MOVE IOS,DEVIOS(DDB)
1403: TRNN IOS,IODERR!IODTER!HDEAD!RSET
1404: JRST UUOQ0
1405: UUOQRL: PUSHJ P,RELLST
1406: JRST UUOQXT
1407:
1408: UUOQR1: ANDCAM AC3,L0BLOK(AC2)
1409: JRST UUOQRL
1410:
1411: UUOQ0N: ORM AC3,L0BLOK(AC2)
1412: UUOQO: PUSHJ P,QOUT
1413: UUOQXT: POP P,TEM
1414: POP P,TAC
1415: POPJ P,
IMPUUO page# 0042 next prev
1417:
1418:
1419:
1420:
1421: RFNMWT: SKIPE IMPDEAD
1422: POPJ P,
1423: MOVSI IOS,BLOKW
1424: ORM IOS,DEVIOS(DDB)
1425: PUSH P,TEM
1426: LDB TEM,RFNMTP
1427: PUSHJ P,TW
1428: JRST [ POP P,TEM
1429: SKIPN RECOVER
1430: SETOM RECOVER
1431: POPJ P,]
1432: POP P,TEM
1433: MOVE IOS,DEVIOS(DDB)
1434: TRNN IOS,HDEAD!RSET!IODERR!IODTER
1435: TRNN IOS,BLOK
1436: POPJ P,
1437: JRST RFNMWT
IMPUUO page# 0043 next prev
1439:
1440:
1441: UUOOOK: PUSHJ P,UUSIDX
1442: POPJ P,
1443: PUSHJ P,UUOCHK
1444: POPJ P,
1445: PUSHJ P,UUSIDX
1446: JRST NOCONN
1447: MOVE AC2,IMPSTB-1(AC3)
1448: TLNN AC2,CLSR
1449: JRST CPOPJ1
1450: MOVEI IOS,IODERR
1451: ORB IOS,DEVIOS(DDB)
1452: POPJ P,
1453:
1454: UUOIOK: PUSHJ P,UURIDX
1455: POPJ P,
1456: PUSHJ P,UUOCHK
1457: POPJ P,
1458: PUSHJ P,UURIDX
1459: JRST NOCONN
1460: JRST CPOPJ1
IMPUUO page# 0044 next prev
1462:
1463:
1464:
1465: UUOCHK: SKIPE IMPDEAD
1466: POPJ P,
1467: MOVE AC2,IMPSTB-1(AC3)
1468: TLNN AC2,RFCS
1469: JRST NOCONN
1470: TLNE AC2,RFCR
1471: JRST CPOPJ1
1472: MOVSI IOS,RFCW
1473: ORM IOS,DEVIOS(DDB)
1474: LDB TEM,RFCTP
1475: PUSH P,IMPLS-1(AC3)
1476: PUSHJ P,TW
1477: JRST UUOCHL
1478: POP P,AC2
1479: MOVE IOS,DEVIOS(DDB)
1480: TRNE IOS,IODERR!IODTER
1481: POPJ P,
1482: PUSHJ P,GETIDX
1483: POPJ P,
1484: JRST UUOCHK
1485: UUOCHL: POP P,AC2
1486: POPJ P,
1487:
1488: SETERR: ORI IOS,IODERR
1489: MOVEM IOS,DEVIOS(DDB)
1490: POPJ P,
IMPUUO page# 0045 next prev
1492:
1493:
1494:
1495:
1496:
1497:
1498:
1499: CLRSKT: MOVEM AC2,IMPLS-1(AC3)
1500: MOVEM TEM,IMPFS-1(AC3)
1501: MOVEM DAT,LNKTAB-1(AC3)
1502: XCTR XR,[MOVE DAT,BSLOC(UUO)]
1503: TRNE AC2,1
1504: MOVEM DAT,IMPBS-1(AC3)
1505: SETZM IMPRFQ-1(AC3)
1506: SETZM IMPSTB-1(AC3)
1507: HRRZM DDB,IMPDDB-1(AC3)
1508: POPJ P,
IMPUUO page# 0046 next prev
1510:
1511:
1512:
1513: QRUN: LDB J,PJOBN
1514: SKIPL TIM(DDB)
1515: SOS TIMWAIT
1516: SETOM TIM(DDB)
1517: MOVM DSER,JOBQUE(J)
1518: CAIE DSER,IOWQ
1519: POPJ P,
1520: MOVE DSER,JBTSTS(J)
1521: TLNN DSER,RUN
1522: POPJ P,
1523: MOVNI DSER,RUNQ
1524: MOVEM DSER,JOBQUE(J)
1525: JRST REQUE
1526:
1527:
1528:
1529:
1530:
1531: CSTAT: TLO AC2,ANYC
1532: ORM AC2,IMPSTB-1(AC3)
1533: PUSH P,DDB
1534: SKIPN DDB,IMPDDB-1(AC3)
1535: JRST CSTAT1
1536: MOVSI AC2,INTIMS
1537: PUSHJ P,INTCOM
1538: CSTAT1: POP P,DDB
1539: POPJ P,
1540:
1541:
1542:
1543:
1544: GETIDX: SKIPN AC3,FFLNK
1545: POPJ P,
1546: GETID1: CAMN AC2,IMPLS-1(AC3)
1547: JRST CPOPJ1
1548: SOJG AC3,GETID1
1549: POPJ P,
IMPUUO page# 0047 next prev
1551:
1552:
1553: ALLOCW: SKIPE IMPDEAD
1554: POPJ P,
1555: MOVSI IOS,ALLW
1556: ORM IOS,DEVIOS(DDB)
1557: PUSH P,TEM
1558: MOVNI TEM,IOWQ
1559: MOVEM TEM,JOBQUE(J)
1560: LDB TEM,ALLTP
1561: PUSHJ P,TW
1562: JRST [ POP P,TEM
1563: JRST ALLXIT]
1564: POP P,TEM
1565: MOVE IOS,DEVIOS(DDB)
1566: TRNN IOS,IODERR!IODTER!HDEAD!RSET!TMO
1567: AOS (P)
1568: ALLXIT: MOVSI IOS,ALLW
1569: ANDCAB IOS,DEVIOS(DDB)
1570: POPJ P,
1571:
1572:
1573:
1574: ALLOK1: PUSHJ P,ALLOCW
1575: POPJ P,
1576: ALLOK: PUSHJ P,UUSIDX
1577: JRST NOCONN
1578: MOVE IOS,IMPSTB-1(AC3)
1579: TLNE IOS,CLSS!CLSR
1580: JRST ALLERS
1581: MOVE IOS,IMPBS-1(AC3)
1582: SKIPLE MAL(DDB)
1583: CAMLE IOS,BAL(DDB)
1584: JRST ALLOK1
1585: JRST CPOPJ1
1586:
1587: ALLERS: MOVEI IOS,IODERR
1588: ORB IOS,DEVIOS(DDB)
1589: POPJ P,
IMPUUO page# 0048 next prev
1591:
1592:
1593: UUSIDX: SKIPN AC3,FFLNK
1594: POPJ P,
1595: PUSH P,DDB
1596: HRRZ DDB,DDB
1597: UUSID1: MOVE AC2,IMPLS-1(AC3)
1598: TRNN AC2,1
1599: JRST UUSID2
1600: CAMN DDB,IMPDDB-1(AC3)
1601: AOSA -1(P)
1602: UUSID2: SOJG AC3,UUSID1
1603: POP P,DDB
1604: POPJ P,
1605:
1606:
1607:
1608: UURIDX: SKIPN AC3,FFLNK
1609: POPJ P,
1610: PUSH P,DDB
1611: HRRZ DDB,DDB
1612: UURID1: MOVE AC2,IMPLS-1(AC3)
1613: TRNE AC2,1
1614: JRST UURID2
1615: CAMN DDB,IMPDDB-1(AC3)
1616: AOSA -1(P)
1617: UURID2: SOJG AC3,UURID1
1618: POP P,DDB
1619: POPJ P,
IMPUUO page# 0049 next prev
1621:
1622:
1623:
1624:
1625:
1626: NSCHECK:
1627: SKIPN IMPDEAD
1628: SKIPN AC3,FFLNK
1629: POPJ P,
1630: XORI AC2,1
1631: MOVEI AC1,(DDB)
1632: NSCLOP: CAMN AC1,IMPDDB-1(AC3)
1633: CAMN AC2,IMPLS-1(AC3)
1634: JRST [ SOJG AC3,NSCLOP
1635: POPJ P,]
1636: MOVE AC2,IMPLS-1(AC3)
1637: MOVE IOS,DEVIOS(DDB)
1638: TRNE IOS,BLOK
1639: PUSHJ P,RFNMWT
1640: PUSHJ P,GETIDX
1641: POPJ P,
1642: MOVE AC1,IMPSTB-1(AC3)
1643: TLNE AC1,RFCS
1644: TLNE AC1,CLSS
1645: JRST NSCZLK
1646: PUSH P,AC2
1647: PUSHJ P,USCLS
1648: POP P,AC2
1649: PUSHJ P,GETIDX
1650: POPJ P,
1651: NSCZLK: SETZM IMPDDB-1(AC3)
1652: JRST ZEROLK
IMPUUO page# 0050 next prev
1654:
1655:
1656: IMPGET: PUSH P,AC2
1657: PUSH P,AC3
1658: MOVEI AC3,TLNG
1659: PUSHJ P,FSGET
1660: JRST SCROUNGE
1661: SKIPG IMPSPN
1662: JRST IMPGSX
1663: PUSH P,AC1
1664: IMPGE1: MOVEI AC3,TLNG
1665: PUSHJ P,FSGET
1666: JRST IMPGX
1667: CONO PI,IMPOFF
1668: EXCH AC1,IMPFSL
1669: HRRZM AC1,@IMPFSL
1670: CONO PI,IMPON
1671: SOSLE IMPSPN
1672: JRST IMPGE1
1673: IMPGX: POP P,AC1
1674: IMPGSX: HRRZ AC3,-1(AC1)
1675: HLRZ AC3,(AC3)
1676: SUBI AC3,400000+TDATA+2
1677: MOVEM AC3,TLEN(AC1)
1678: MOVEM AC3,TWC(AC1)
1679: PUSHJ P,LEGAL
1680: JRST IMPGET
1681: AOS -2(P)
1682: SETZM TLINK(AC1)
1683: IMPGEX: POP P,AC3
1684: POP P,AC2
1685: POPJ P,
IMPUUO page# 0051 next prev
1687:
1688:
1689: SCROUNGE:
1690: CONO PI,IMPOFF
1691: SKIPN AC1,IMPFSL
1692: JRST SCRNG1
1693: MOVE AC3,(AC1)
1694: MOVEM AC3,IMPFSL
1695: CONO PI,IMPON
1696: PUSHJ P,LEGAL
1697: JRST SCRERR
1698: AOS NSPSUS
1699: AOS IMPSPN
1700: JRST IMPGSX
1701:
1702: SCRERR: SETZM IMPFSL
1703: MOVEI AC1,10
1704: MOVEM AC1,IMPSPN
1705: JRST IMPGEX
1706:
1707: SCRNG1: CONO PI,IMPON
1708: JRST IMPGEX
IMPUUO page# 0052 next prev
1710:
1711:
1712:
1713: IMPREL: ANDI AC1,-1
1714: PUSHJ P,LEGAL
1715: POPJ P,
1716: SKIPG IMPSPN
1717: JRST FSGIVE
1718: SOS IMPSPN
1719: CONO PI,IMPOFF
1720: EXCH AC1,IMPFSL
1721: MOVEM AC1,@IMPFSL
1722: CONO PI,IMPON
1723: POPJ P,
1724:
1725:
1726:
1727:
1728:
1729: LEGAL: SKIPN DEBMODE
1730: JRST CPOPJ1
1731: PUSH P,AC2
1732: PUSH P,AC3
1733: HRRZ AC2,-1(AC1)
1734: HLRZ AC3,(AC2)
1735: CAIN AC3,400000+TLNG!7+1
1736: JRST LEGPCH
1737: LEGERR: PUSHACS
1738: PUSHJ P,DISDATE
1739: PUSHJ P,DISERR
1740: [ASCIZ /BAD BLOCK IN IMPSER
1741: CALLERS = /]
1742: DISARG LOC,<-22(P)>
1743: [ASCIZ /, /]
1744: DISARG LOC,<-23(P)>
1745: [ASCIZ /, /]
1746: DISARG LOC,<-24(P)>
1747: [ASCIZ /, /]
1748: DISARG LOC,<-25(P)>
1749: [ASCIZ /
1750: /]
1751: -1
1752: POPACS
1753: POP P,AC3
1754: POP P,AC2
1755: POPJ P,
1756:
1757: LEGPCH: SUBI AC2,TLNG!7+1
1758: CAIE AC2,-2(AC1)
1759: JRST LEGERR
1760: POP P,AC3
1761: POP P,AC2
1762: JRST CPOPJ1
IMPUUO page# 0053 next prev
1764:
1765:
1766:
1767:
1768: MAXLNK←←=60
1769: MINLNK←←=10
1770:
1771: GNLNK: PUSH P,AC1
1772: PUSH P,DSER
1773: MOVE AC2,LSTLNK
1774: CAIL AC2,MINLNK
1775: CAILE AC2,MAXLNK-1
1776: MOVEI AC2,MINLNK
1777: MOVEM AC2,LSTLNK
1778: ADDI AC2,1
1779: GNLNK5: SKIPN AC1,FFLNK
1780: JRST GNLNK6
1781: GNLNK1: LDB DAT,[POINT 8,LNKTAB-1(AC1),35]
1782: CAIN DAT,(AC2)
1783: JRST GNLNK2
1784: CAMN AC2,LSTLNK
1785: JRST GNOLNK
1786: GNLNK4: SOJG AC1,GNLNK1
1787: GNLNK6: MOVEM AC2,LSTLNK
1788: POP P,DSER
1789: POP P,AC1
1790: POPJ P,
1791:
1792: GNLNK2: MOVE DSER,LNKTAB-1(AC3)
1793: XOR DSER,LNKTAB-1(AC1)
1794: TRNE DSER,177400
1795: JRST GNLNK4
1796: ADDI AC2,1
1797: CAILE AC2,MAXLNK
1798: MOVEI AC2,MINLNK
1799: JRST GNLNK5
1800:
1801: GNOLNK: TELCTR(NOLKS,<NO NEW LINK!!!>)
1802: PUSHJ P,DISFLUSH
1803: JRST AUTOLOAD
IMPUUO page# 0054 next prev
1805:
1806:
1807:
1808:
1809: ZEROLK: MOVE AC1,IMPSTB-1(AC3)
1810: TLNE AC1,RFCR!RFCS
1811: JRST ZEROL1
1812: TLNE AC1,CLSS
1813: TLNE AC1,CLSR
1814: JRST KILLNK
1815: POPJ P,
1816:
1817: ZEROL1: TLNE AC1,CLSS
1818: TLNN AC1,CLSR
1819: POPJ P,
1820: JRST KILLNK
IMPUUO page# 0055 next prev
1822:
1823:
1824:
1825: DISPQ: SETZ TAC1,
1826: RFCQL: PUSHJ P,LEGAL
1827: JRST [ SETZM IMPRFQ-1(AC3)
1828: POPJ P,]
1829: PUSHJ P,GSOCK2
1830: CAMN AC2,IMPLS-1(AC3)
1831: JRST RFCQD1
1832: RFCQI: MOVEI TAC1,(AC1)
1833: HLRZ AC1,TLINK(AC1)
1834: JUMPN AC1,RFCQL
1835: POPJ P,
1836:
1837: RFCQD1: PUSHJ P,GSOCK1
1838: CAME AC2,IMPFS-1(AC3)
1839: SKIPGE IMPFS-1(AC3)
1840: JRST RFCQD2
1841: JRST RFCQI
1842:
1843: RFCQD2: LDB DAT,ELINKP
1844: XOR DAT,LNKTAB-1(AC3)
1845: TRNE DAT,177400
1846: SKIPN LNKTAB-1(AC3)
1847: JRST RFCQD3
1848: JRST RFCQI
1849:
1850: RFCQD3: LDB DAT,SRCP
1851: DPB DAT,[POINT 8,LNKTAB-1(AC3),27]
1852: MOVEM AC2,IMPFS-1(AC3)
1853: LDB AC2,SZLKP
1854: LDB DSER,OPCDP
1855: PUSHJ P,SETHB
1856: PUSHJ P,UNLRFQ
1857: PUSHJ P,IMPREL
1858: JRST CPOPJ1
IMPUUO page# 0056 next prev
1860:
1861:
1862:
1863: APNLST: SETZM IMPRFQ-1(AC3)
1864: PUSHJ P,LEGAL
1865: POPJ P,
1866: CONO PI,IMPOFF
1867: SKIPN AC2,ILIST
1868: JRST APNLS1
1869: MOVSS AC2
1870: HRLM AC1,TLINK(AC2)
1871: HLLM AC1,ILIST
1872: APNLS2: CONO PI,IMPON
1873: POPJ P,
1874:
1875: APNLS1: MOVEM AC1,ILIST
1876: JRST APNLS2
1877:
1878:
1879:
1880:
1881: UNLRFQ: HLRZ AC2,TLINK(AC1)
1882: TRNN TAC1,-1
1883: JRST UNLRF1
1884: HRLM AC2,TLINK(TAC1)
1885: SKIPN AC2
1886: HRLM TAC1,IMPRFQ-1(AC3)
1887: POPJ P,
1888:
1889: UNLRF1: HRRM AC2,IMPRFQ-1(AC3)
1890: SKIPN AC2
1891: SETZM IMPRFQ-1(AC3)
1892: POPJ P,
IMPUUO page# 0057 next prev
1894:
1895:
1896:
1897:
1898: JIFMIN←←=60*JIFSEC
1899:
1900: TW: JUMPE TEM,TIMAGN
1901: IMULI TEM,2*JIFSEC
1902: TIMEDW: ADD TEM,TIME
1903: CAML TEM,[JIFDAY: =24*=60*JIFMIN]
1904: SUB TEM,JIFDAY
1905: MOVEM TEM,TIM(DDB)
1906: AOS TIMWAIT
1907: TIMAGN: MOVNI TEM,IOWQ
1908: MOVEM TEM,JOBQUE(J)
1909: PUSHJ P,WSCHED
1910: MOVE TEM,DEVIOS(DDB)
1911: TDNN TEM,IOS
1912: JRST TIMXIT
1913: TRNN TEM,TMO!IODERR!IODTER
1914: JRST TIMAGN
1915: TIMXIT: ANDCA IOS,DEVIOS(DDB)
1916: TRZE IOS,TMO
1917: JRST TIMXT1
1918: AOS (P)
1919: TIMXT1: MOVEM IOS,DEVIOS(DDB)
1920: POPJ P,
IMPUUO page# 0058 next prev
1922:
1923:
1924:
1925:
1926: TCLSW: PUSH P,AC2
1927: MOVE AC2,IMPLS-1(AC3)
1928: MOVSI IOS,CLSW
1929: ORM IOS,DEVIOS(DDB)
1930: LDB TEM,CLSTP
1931: PUSHJ P,TW
1932: JFCL
1933: PUSHJ P,GETIDX
1934: JRST NOCONN
1935: POP P,AC2
1936: MOVSI AC1,CLSR
1937: ORB AC1,IMPSTB-1(AC3)
1938: POPJ P,
IMPUUO page# 0059 next prev
1940:
1941:
1942:
1943:
1944: SNDBAL: PUSH P,TAC
1945: PUSH P,TAC1
1946: PUSH P,AC1
1947: MOVNI TAC1,(AC3)
1948: ADD TAC1,NHBA(DDB)
1949: MOVNI TAC,(AC2)
1950: ADD TAC,NHMA(DDB)
1951: PUSHJ P,IMPGET
1952: JRST NOCORE
1953: SETZM TDATA(AC1)
1954: SETZM TDATA+1(AC1)
1955: SETZM TDATA+2(AC1)
1956: PUSHJ P,UURIDX
1957: JRST NOCONN
1958: DPB TAC1,[POINT 32,TDATA+3(AC1),31]
1959: ADDM TAC1,HBA(DDB)
1960: DPB TAC,[POINT 16,TDATA+2(AC1),31]
1961: ADDM TAC,HMA(DDB)
1962: MOVE TAC,IMPSTB-1(AC3)
1963: TLC TAC,RFCS!RFCR
1964: TLNN TAC,RFCS!RFCR
1965: TLNE TAC,CLSS!CLSR
1966: JRST SNDPOP
1967: MOVEI TAC,ALL
1968: DPB TAC,OPCDP
1969: MOVE TAC,LNKTAB-1(AC3)
1970: DPB TAC,OLINKP
1971: ANDCMI TAC,377
1972: DPB TAC,ELINKP
1973: MOVEI TAC,10
1974: DPB TAC,SIZEP
1975: DPB TAC,COUNTP
1976: PUSHJ P,UUOQ
1977: SNDPPX: POP P,AC1
1978: POP P,TAC1
1979: POP P,TAC
1980: POPJ P,
1981:
1982: SNDPOP: PUSHJ P,IMPREL
1983: JRST SNDPPX
IMPUUO page# 0060 next prev
1985:
1986:
1987:
1988: INIALL: SKIPE NHMA(DDB)
1989: JRST CHKENF
1990: MOVEI AC2,DEFBAL
1991: MOVEM AC2,NHBA(DDB)
1992: LSH AC2,-1
1993: MOVEM AC2,NHBA2(DDB)
1994: MOVEI AC2,DEFMAL
1995: MOVEM AC2,NHMA(DDB)
1996: LSH AC2,-1
1997: MOVEM AC2,NHMA2(DDB)
1998: CHKENF: MOVE AC3,HBA(DDB)
1999: ADD AC3,BIIL(DDB)
2000: MOVE AC2,HMA(DDB)
2001: ADD AC2,MIIL(DDB)
2002: CAML AC3,NHBA2(DDB)
2003: CAMGE AC2,NHMA2(DDB)
2004: PUSHJ P,SNDBAL
2005: POPJ P,
IMPUUO page# 0061 next prev
2007:
2008:
2009:
2010: USCLS: PUSHJ P,IMPGET
2011: JRST NOCORE
2012: PUSHJ P,UUSIDX
2013: JRST IMPREL
2014: SETZM BAL(DDB)
2015: SETZM MAL(DDB)
2016: USCLS1: MOVE AC2,LNKTAB-1(AC3)
2017: ANDI AC2,177400
2018: LSH AC2,14
2019: PUSHJ P,MCLSB
2020: MOVE AC2,IMPLS-1(AC3)
2021: PUSH P,AC2
2022: PUSHJ P,PSOCK1
2023: MOVE AC2,IMPFS-1(AC3)
2024: PUSHJ P,PSOCK2
2025: MOVSI AC2,CLSS
2026: TDNE AC2,IMPSTB-1(AC3)
2027: JRST [SUB P,[1,,1]
2028: JRST IMPREL]
2029: PUSHJ P,CSTAT
2030: PUSHJ P,UUOQ
2031: POP P,AC2
2032: PUSHJ P,GETIDX
2033: JRST NOCONN
2034: POPJ P,
2035:
2036:
2037:
2038:
2039: URCLS: PUSHJ P,IMPGET
2040: JRST NOCORE
2041: PUSHJ P,UURIDX
2042: JRST IMPREL
2043: JRST USCLS1
EOF: IMPUUO end-of-file. cnt=59